<?php
try{
    include '../ini.php';
    include '../classes/xl_product.php';
    $dt_xl_product=new xl_product;
    if($_POST['data']['category_id']==-1){
        throw new Exception('Vui lòng chọn thể loại');
    }
    $_POST['data']['category_id']=$dt_xl_admin->removeSQLI($_POST['data']['category_id']);
    $read_id=$dt_xl_product->read_id_category($_POST['data']['category_id']);
    if($read_id === FALSE){
        throw new Exception('Không tồn tại loại ID này');
    }
    if($_POST['data']['brand_products_id']== -1){
        throw new Exception('Vui lòng chọn thể loại');
    }
    $_POST['data']['brand_products_id']=$dt_xl_admin->removeSQLI($_POST['data']['brand_products_id']);
    if($_POST['data']['brand_products_id'] != 0){
        $read_id_brand=$dt_xl_product->read_id_brand($_POST['data']['brand_products_id']);
        if($read_id_brand === FALSE){
            throw new Exception('Không tồn tại loại ID này');
        }
    }
    $read_product_sm=$dt_xl_product->read_id($_POST['data']['id']);
    if($read_product_sm ===  FALSE){
        throw new Exception('Không tồn tại loại mã này.');
    }
    $_POST['data']['id']=$dt_xl_admin->removeSQLI($_POST['data']['id']);
    if($_POST['data1']['product_id'] != ''){
        $read_product_image=$dt_xl_product->read_id($_POST['data1']['product_id']);
        if($read_product_image ===  FALSE){
            throw new Exception('Không tồn tại loại mã hình này.');
        }
    }
    $_POST['data1']['product_id']=$dt_xl_admin->removeSQLI($_POST['data1']['product_id']);
    
    
    if(empty($_POST['data']['name'])){
        throw new Exception('Vui lòng nhập tên sản phẩm');
    }
    $_POST['data']['name']=$dt_xl_admin->xss_clean($_POST['data']['name']);
    $test_name=$dt_xl_product->test($read_product_sm['id'],$_POST['data']['name']);
    if($test_name == true){
        throw new Exception('Tên này bạn đã có rồi vui lòng đặt tên khác');
    }
    if(isset($_POST['data']['price_old'])){
           if(!is_numeric($_POST['data']['price_old'])){
            throw new Exception('Vui lòng nhập giá cũ sản phẩm là số');
        } 
    } else {
        $_POST['data']['price_old']=0;
    }
    $_POST['data']['price_old']=$dt_xl_admin->removeSQLI($_POST['data']['price_old']);
    if($_POST['data']['price_new']){
        if(!is_numeric($_POST['data']['price_new'])){
            throw new Exception('Vui lòng nhập giá mới sản phẩm là số');
        }
    }else{
       $_POST['data']['price_new']=0; 
    }
    $_POST['data']['price_new']=$dt_xl_admin->removeSQLI($_POST['data']['price_new']);
    if(empty($_POST['data']['material'])){
        throw new Exception('Vui lòng nhập chất liệu sản phẩm');
    }
    $_POST['data']['material']=$dt_xl_admin->xss_clean($_POST['data']['material']);
    if(empty($_POST['data']['size'])){
        throw new Exception('Vui lòng nhập kích thước sản phẩm');
    }
    $_POST['data']['size']=$dt_xl_admin->xss_clean($_POST['data']['size']);
    if(empty($_POST['data']['color'])){
        throw new Exception('Vui lòng nhập màu sản phẩm');
    }
    $_POST['data']['color']=$dt_xl_admin->xss_clean($_POST['data']['color']);
    if(isset($_POST['data']['warranty'])){
        if(!is_numeric($_POST['data']['warranty'])){
            throw new Exception('Vui lòng nhập thời gian bảo hành sản phẩm là số');
        }
    } else {
        $_POST['data']['warranty']=0;
    }
    $_POST['data']['warranty']=$dt_xl_admin->removeSQLI($_POST['data']['warranty']);
    if(isset($_POST['data']['quantity'])){
        if(!is_numeric($_POST['data']['quantity'])){
            throw new Exception('Vui lòng nhập số lượng sản phẩm phải là số');
        }
    }else{
        $_POST['data']['quantity']=0;
    }
    $_POST['data']['quantity']=$dt_xl_admin->removeSQLI($_POST['data']['quantity']);
    if(empty($_POST['data']['title'])){
        throw new Exception('Vui lòng nhập tiêu đề sản phẩm');
    }
    $_POST['data']['title']=$dt_xl_admin->xss_clean($_POST['data']['title']);
    if(empty($_POST['data']['keyword'])){
        throw new Exception('Vui lòng nhập từ khóa sản phẩm');
    }
    $_POST['data']['keyword']=$dt_xl_admin->xss_clean($_POST['data']['keyword']);
    if(empty($_POST['data']['description'])){
        throw new Exception('Vui lòng nhập mô tả sản phẩm');
    }
    $_POST['data']['description']=$dt_xl_admin->xss_clean($_POST['data']['description']);
    $product=$dt_xl_product->read_id($_POST['data']['id']);
    if($product === FALSE){
        throw new Exception('Không tồn tại loại mã này');
    }
  
    $avatar=isset($_FILES['image']['name'])?$_FILES['image']['name']:'';
	$avatar=addslashes(stripslashes($avatar));
    $_FILES['image']['size']=$_FILES['image']['size']/1024;
    $arr_image=array('image/gif','image/jpeg','image/png','image/wbmp','image/xbm');
    if($avatar!=''){
        $type=mime_content_type($_FILES['image']['tmp_name']); // tránh bị đổi đuôi file
        if(in_array($type,$arr_image) === false){
			throw new Exception('Không đúng định dạng cho phép của image');
		}
		if($_FILES['image']['error']!= 0){
			throw new Exception('Xảy ra lỗi trong quá trình truyền tải image');
		}		
        # bắt lỗi kích thước hình không cho vào data  tool crop_image
        
		if($_FILES['image']['size']>900 || $_FILES['image']['size']<38){
		  throw new Exception('Kích thước định dạng không đúng chuẩn của image');
			
		}
        $explode =explode('.',$avatar);
        $avatar =$dt_xl_admin->vn_str_filter($_POST['data']['name']).'.'.$explode[count($explode) -1];
    }
    $_POST['data']['image']=$avatar;
   
     #Danh sach hinh
    $list_image = array();
    
        if(count($_FILES['product_image']['name']) > 0){
            for($i=0;$i<count($_FILES['product_image']['name']);$i++){
                $_FILES['product_image']['size'][$i]=$_FILES['product_image']['size'][$i]/1024;
                $image=isset($_FILES['product_image']['name'][$i])?$_FILES['product_image']['name'][$i]:'';
            	$image=addslashes(stripslashes($image));
            	if($image!=''){
            		$type=mime_content_type($_FILES['product_image']['tmp_name'][$i]);
            		if(($type != 'image/jpeg') && ($type != 'image/png')&& ($type != 'image/gif')){		
            		//kiem tra dung file hay khong
            			throw new Exception('Đinh dạng hình trong danh sách hình không đúng vui lòng chọn file hình đúng định dạng (JPG,PNG,GIF)');
            		}
                    //$_FILES['image']['size']>900 || $_FILES['image']['size']<38
            		if($_FILES['product_image']['size'][$i] > 900 || $_FILES['product_image']['size'][$i] < 38){//Kiem tra size hinh
            			throw new Exception('Size hình trong dach sach hình quá lớn');
            		}
            		if($_FILES['product_image']['error'][$i] != 0){
            			
            			throw new Exception('Đã bị lỗi khi upload danh sách hình');
            		}
                    $explode =explode('.',$image);
                    $n=count($dt_xl_product->read())+1;
                    $image = $dt_xl_admin->vn_str_filter($_POST['data']['name']).'-'.$i.'.'.$explode[count($explode) -1];
            	}
                $list_image[] = $image;
            }
        }
 
 
    if(empty($_POST['data']['highlights'])){
        $_POST['data']['highlights']=0;
    } else {
        $_POST['data']['highlights']=1;
    }
    $_POST['data']['highlights']=$dt_xl_admin->removeSQLI($_POST['data']['highlights']);
    $_POST['data']['day_time']=$product['day_time'];
    $data=$_POST['data'];
    $result=$dt_xl_product->update($data);
    if($result === false){
        throw new Exception('Xảy ra lỗi trong quá trình update'); 
    }
    // format time 
    $time_folder=date_format(date_create($data['day_time']),'m-Y');
    #$time_folder=date('m-Y',strtotime($data['day_time']));
    $day_time=image('product',date_format(date_create($read_product_sm['day_time']),'m-Y'));
    if($avatar !=''){
       if($read_product_sm['image'] !=''){
		  unlink($day_time.'/'.$product['image']);
       }
    }
   
    //khởi tao time của folder
    if($data['image']!=''){    
    	if(!file_exists($day_time)){
    		mkdir($day_time,0755,true);  
    	}else {       
            $_FILES['image']=str_replace($_FILES['image']['name'],$avatar,$_FILES['image']);
             crop_image($_FILES['image']['tmp_name'],$day_time.'/'.$_FILES['image']['name'],600,400);
             //logo_image($day_time.'/'.$_FILES['image']['name'],9,"../../upload/icon/logo.png");
        }
    }
   
    ## xử lý nhiêu hình
    if($list_image[0] != ''){
        $product_image=$dt_xl_product->delete_all_product_images($_POST['data1']['product_id']);
        foreach($product_image as $image){
            $list=$dt_xl_product->delete_all_product_images($image['product_id']);
            if($image['image']!='' OR $image['image']==NULL){
                $product_image=$dt_xl_product->delete_product_images($image['product_id']);
            }
            if($product_image === false){
                throw new Exception('Xảy ra lỗi trong quá trình xóa bài viết');
            } else {
                foreach($list as $value){
                    if($value['image']!=''){
            		      unlink($day_time.'/'.$value['image']);
                    }
                }
            }
        }
     }
    ## xử lý nhiêu hình
    if($list_image[0] !=''){
        $list_product=$dt_xl_product->read_product_image();
        foreach($list_image as $list){
            $images=$dt_xl_product->insert_list($list_product['id'],$list);
            if($images === FALSE){
                throw new Exception('Xảy ra lỗi trong quá trình xử lý nhiều hình ảnh');
            }
        }
        for($i=0;$i<count($_FILES['product_image']['name']);$i++){
            
                if(!file_exists($day_time)){
                    mkdir($day_time,0755,true);  
                } else {
                     $_FILES['product_image']['name'][$i]=str_replace($_FILES['product_image']['name'][$i],$list_image[$i],$_FILES['product_image']['name'][$i]);
                     crop_image($_FILES['product_image']['tmp_name'][$i],$day_time.'/'.$_FILES['product_image']['name'][$i],600,400);
                     logo_image($day_time.'/'.$_FILES['product_image']['name'][$i],9,"../../upload/icon/logo.png");
                }
            
        }
        
    }
   
    $dbh=NULL;
    $_SESSION['msg']='Thành Công';
    $_SESSION['type_msg']='success';
    header('Location: product_list.php');
   
} catch(Exception $e) {
    $dbh=NULL;
    $_SESSION['msg']=$e->getMessage();
    $_SESSION['type_msg']='error';
    if(empty($_SERVER['HTTP_REFERER'])){
        header('Location: product_list.php');
    }else{
        header('Location:'.$_SERVER['HTTP_REFERER']);
    }
    
}